
var act=1;
/*
 * Esta funcion agregar una fase de forma dinamica
 */
function agregarFase(){

    //Obtenemos la referencia a la tabla
    var tabla = document.getElementById("tabla_fases");
    
    //calculamos el numero de filas que posee tabla_fases para saber en donde insertar
    //las nuevas fases que vayamos agregando, es decir, al final de la tabla
    var numFilas = tabla.rows.length;

    //Calculamos el numero de fases que se tiene
    var numFase = numFilas/10;
    
    // Insertamos una fila en la tabla en fila de indice numFilas
    var fila   = tabla.insertRow(numFilas);
    // Insertamos una celda en la fila en el indice numFilas
    fila.insertCell(0).innerHTML = "<span class='rojo'>*</span><strong>Fase</strong>";
    
    //Repetimos el proceso anterior: calculamos el numero de filas de la tabla_fases
    //Insertamos una nueva fila
    //Insertamos una celda en esa fila
    numFilas=tabla.rows.length;
    fila   = tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<input size='75' name='fases"+numFase+"' type='text' class='parrafo'>";
 
    numFilas=tabla.rows.length;
    fila=tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="&nbsp;"; 
 
    numFilas=tabla.rows.length;
    fila   = tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<span class='rojo'>*</span><strong>Objetivos Espec&iacute;ficos</strong>";

    numFilas=tabla.rows.length;
    fila   = tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<textarea name='objetivo_fase"+numFase+"' cols='75' rows='5' class='parrafo'></textarea>";

    numFilas=tabla.rows.length;
    fila=tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="&nbsp;";

    numFilas=tabla.rows.length;
    fila   = tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<strong>Actividades y Duraci&oacute;n</strong>";
    
    numFilas=tabla.rows.length;
    fila   = tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<table id='tabla_actividades"+numFase+"' border=0 class='parrafo'><tr><TD><span class='rojo'>*</span><textarea name='actividad"+numFase+"0' cols='60' rows='3' class='parrafo'></textarea></TD><TD><span class='rojo'>*</span><input type='text' class='parrafo'  name='duracion"+numFase+"0' size='10'></TD></tr></table>";
 
    numFilas=tabla.rows.length;
    fila=tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="<center>"+/*"<input type='button' class='parrafo' value='Agregar M&aacute;s Actividades' onClick='agregarAct("+numFase+");'>*/"<a href='javascript: agregarAct("+numFase+")'><img src='imagenes/iconos/plus_big.jpg' width='20' height='20'  alt='Agregar actividad' title='Agregar actividad' border=0 /></a>"+"<a href='javascript: eliminarFase("+numFase+")'><img src='imagenes/iconos/remove4.jpg' width='20' height='20'  alt='Eliminar fase' title='Eliminar fase' border=0 /></a></center>"//<input type='button' class='parrafo' value='Eliminar Fase' onClick='eliminarFase("+numFilas1+");'></center>";
    
    numFilas=tabla.rows.length;
    fila=tabla.insertRow(numFilas);
    fila.insertCell(0).innerHTML="&nbsp;";
    act=1;
}

/*
 * Esta funcion elimina una actividad de una fase
 * numFase: numero de fase cuya actividad se desea eliminar.
 * fila: numero de la actividad que se desea eliminar.
 */
function eliminarAct(numFase,fila){

    var actividades="tabla_actividades"+numFase;
    var tabla=document.getElementById(actividades);
    tabla.deleteRow(fila);
    
   
    //Recalculamos los nombres de los atributos de esta tabla
    //otro fume
    var fila1DeTabla = tabla.getElementsByTagName("textarea");
        
    for (var m = 0; m < fila1DeTabla.length; m++){
        fila1DeTabla[m].name =  "actividad"+numFase+m;
    }
        
    var fila2DeTabla = tabla.getElementsByTagName("input");
        
    for (m = 0; m < fila2DeTabla.length; m++){
        fila2DeTabla[m].name =  "duracion"+numFase+m;
    }

      
    //Empezamos desde 1 por el boton eliminar actividad, que no debe aparecer
    //en la actividad 0
    for(j=1;j<tabla.rows.length;j++){
        //accedemos al boton de eliminar fase
        tabla.rows[j].cells[2].innerHTML="<a href='javascript: eliminarAct("+numFase+","+j+")'><img src='imagenes/iconos/remove4.jpg' width='20' height='20'  alt='Eliminar actividad' title='Eliminar actividad' border=0 /></a>";
    }
}


/*
 * Esta funcion agregar una actividad de forma dinamica.
 * numFase: numero de la fase a la cual estoy insertando actividades.
 */
function agregarAct(numFase){

    var actividades="tabla_actividades"+numFase;
    var tabla=document.getElementById(actividades);
    var numFilas=tabla.rows.length;
    var fila=tabla.insertRow(numFilas);
    
    fila.insertCell(0).innerHTML="<span class='rojo'>*</span><textarea name='actividad"+numFase+numFilas+"' cols='60' rows='3' class='parrafo'></textarea>";
    fila.insertCell(1).innerHTML="<span class='rojo'>*</span><input type='text' class='parrafo'  name='duracion"+numFase+numFilas+"' size='10'>";
    fila.insertCell(2).innerHTML="<a href='javascript: eliminarAct("+numFase+","+numFilas+")'><img src='imagenes/iconos/remove4.jpg' width='20' height='20'  alt='Eliminar actividad' title='Eliminar actividad' border=0 /></a>";

}

/*
 * Esta funcion elimina una fase del plan de trabajo.
 * numFase: indica la fase que se desea eliminar.
 */
function eliminarFase(numFase){
    
    tabla=document.getElementById('tabla_fases');
    
    //calculamos la fila a partir del cual queremos eliminar.
    //multiplicamos por 10, porq es el num de filas que se agregan por fase
    fila = numFase * 10;
    
    var numFasesTotales=(tabla.rows.length)/10;
    var restoFases=numFasesTotales - numFase;
    
    //eliminamos todas las filas que se corresponden con la fase.
    //cada vez que se agrega una fase se agregan 10 filas, es por eso el 
    //numero 10
    for(j=0;j<10;j++){
        tabla.deleteRow(fila);     
    }
    
    
    //Al eliminar una fase, se recalculan los nombres de las fases
    //OJO: lo que esta comentado es para tener una referencia de lo que hay en
    //cada fila.
    for(i=1;i<=restoFases;i++){
        //tabla.rows[fila].cells[0].innerHTML = "<span class='rojo'>*</span><strong>Fase</strong>";
        tabla.rows[fila+1].cells[0].firstChild.name="fases"+numFase;
        //  tabla.rows[fila+2].cells[0].innerHTML="&nbsp;"; 
        //  tabla.rows[fila+3].cells[0].innerHTML="<span class='rojo'>*</span><strong>Objetivos Espec&iacute;ficos</strong>";
        tabla.rows[fila+4].cells[0].firstChild.name="objetivo_fase"+numFase;
        //  tabla.rows[fila+5].cells[0].innerHTML="&nbsp;"; 
        //  tabla.rows[fila+6].cells[0].innerHTML="<strong>Actividades y Duraci&oacute;n</strong>";
        //  tabla.rows[fila+7].cells[0].innerHTML="<table id='tabla_actividades"+numFase+"' border=0 class='parrafo'><tr><TD><span class='rojo'>*</span><textarea name='actividad"+numFase+"0' cols='60' rows='3' class='parrafo'></textarea></TD><TD><span class='rojo'>*</span><input type='text' class='parrafo'  name='duracion"+numFase+"0' size='10'></TD></tr></table>";
        var children = tabla.rows[fila+7].cells[0].childNodes;
        
        //Lo siguiente es un fume, ni yo misma lo entiendo
        for (k=0;k<children.length;k++){
            children[k].id="tabla_actividades"+numFase;
        }

        tabla2=document.getElementById("tabla_actividades"+numFase);
        
        //Recalculamos los nombres de los atributos de esta tabla
        //otro fume
        var fila1DeTabla2 = tabla2.getElementsByTagName("textarea");
        
        for (var m = 0; m < fila1DeTabla2.length; m++){
            fila1DeTabla2[m].name =  "actividad"+numFase+m;
        }
        
        var fila2DeTabla2 = tabla2.getElementsByTagName("input");
        
        for (var m = 0; m < fila2DeTabla2.length; m++){
            fila2DeTabla2[m].name =  "duracion"+numFase+m;
        }

      
        //Empezamos desde 1 por el boton eliminar actividad, que no debe aparecer
        //en la actividad 0
        for(j=1;j<tabla2.rows.length;j++){
            //accedemos al boton de eliminar fase
            tabla2.rows[j].cells[2].innerHTML="<a href='javascript: eliminarAct("+numFase+","+j+")'><img src='imagenes/iconos/remove4.jpg' width='20' height='20'  alt='Eliminar actividad' title='Eliminar actividad' border=0 /></a>";
        }

        tabla.rows[fila+8].cells[0].innerHTML=/*"<center><input type='button' class='parrafo' value='Agregar M&aacute;s Actividades' onClick='agregarAct("+numFase+");'>*/"<center><a href='javascript: agregarAct("+numFase+")'><img src='imagenes/iconos/plus_big.jpg' width='20' height='20'  alt='Agregar actividad' title='Agregar actividad' border=0 /></a>"+"<a href='javascript: eliminarFase("+numFase+")'><img src='imagenes/iconos/remove4.jpg' width='20' height='20'  alt='Eliminar fase' title='Eliminar fase' border=0 /></a></center>"//<input type='button' class='parrafo' value='Eliminar Fase' onClick='eliminarFase("+numFilas1+");'></center>";
        //fila.rows[fila+9].cells[0].innerHTML="&nbsp;"; 
        fila = fila + 10;
        numFase = numFase + 1;
    }
}

function valEmail(valor){
    re=/^[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$/
    if(!re.exec(valor))    {
        return false;
    }else{
        return true;
    }
}

/*Esta funcion se utiliza para validar el correo del tutor academico que no debe contener @*/
function valEmail2(valor){
    re=/^[\w-\.]+$/;
    if(!re.exec(valor))    {
        return false;
    }else{
        return true;
    }
}

function valTelefono(valor){
    if( !(/^\d{11,14}$/.test(valor)) ) {
        return false;
    }else{
        return true;
    }
    
}


function fases_llenas(){
    d=document.datos;
    var campos = document.getElementById("datos").elements;
    var n=campos.length; //numero de elementos del formulario
    var res=true;

    for (i=37; i<n; i++){
        if(campos[i].value==""){
            return false;
        }
    }
    return res;
}


function datos_tutor_indstrial_vacios(){
    d=document.datos;
    if(	d.nombre_tut_ind.value=="" &&
        d.apellido_tut_ind.value=="" &&
        d.profesion_tut_ind.value=="" &&
        d.cargo_tut_ind.value=="" &&
        d.dpto_tut_ind.value=="" &&
        d.estado.value=="" &&
        d.direccion_ind.value=="" &&
        d.tlf_tut_ind.value=="" &&
        d.descripcion_ind.value=="" && 
        d.tlf_rrhh.value=="" && 
        d.email_tut_ind.value==""&& 
        d.empresa.value==""      
    
        ){ 
        return true; 	
    }else{
        return false; 	
    }
}

function datos_tutor_academico_vacios(){
    d=document.datos;
    if(	d.nombre_tut_usb.value=="" &&
        d.apellido_tut_usb.value=="" && 
        d.ced_aca.value=="" &&
        d.dpto_tut_usb.value=="seleccione" &&
        d.tlf_tut_usb.value==""  &&
        d.categoria.value=="seleccione"  &&
        d.dedicacion.value=="seleccione"  &&
        d.email_tut_usb.value==""  
        ){ 
        return true; 	
    }else{
        return false; 	
    }
}


function datos_pasantia_vacios(){
    d=document.datos;
    if(	d.texto.value=="" &&
        d.area.value=="" &&               
        d.resumen.value=="" &&
        d.objetivos.value=="" 
        ){ 
        return true; 	
    }else{
        return false; 	
    }
}

function verificar(opc){
    
    var error=false;
    var aviso="";
    var texto="";
    var texto2="";	
    d=document.datos;
    
    /******************* Verificacion de datos tutor insdustrial *****************/
	
    if (datos_tutor_indstrial_vacios()){
        error=true; 	
        texto=texto+"-Debe completar Datos Tutor Industrial.\n";		
    }
    else{
        
        if (//El campo nombre de la empresa esta vacio	
            d.empresa.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar la empresa donde realizará la pasantía.\n";		
        }
        
        if (//El campo nombre esta vacio	
            d.nombre_tut_ind.value=="" ){
            error=true; 	
            texto=texto+"-Debe especificar el nombre del tutor industrial.\n";		
        }
        if (//El campo apellido vacio	
            d.apellido_tut_ind.value=="" ){
            error=true; 	
            texto=texto+"-Debe especificar el apellido del tutor industrial.\n";		
        }
        
       
        if  (//El campo profesion vacio	
            d.profesion_tut_ind.value==""  ){
            error=true; 	
            texto=texto+"-Debe especificar la profesión del tutor industrial.\n";		
        }	
        if (//El campo cargo esta vacio	
            d.cargo_tut_ind.value==""    ){
            error=true; 	
            texto=texto+"-Debe especificar el cargo del tutor industrial.\n";		
        }
        if (//El campo departamento vacio	
            d.dpto_tut_ind.value==""    ){
            error=true; 	
            texto=texto+"-Debe especificar el departamento del tutor industrial.\n";		
        }

        if (//El campo estado	
            d.estado.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar el estado donde se localiza la empresa, en Datos del tutor industrial.\n";	
        }
        
        if (//El campo direccion vacio
            d.direccion_ind.value==""    ){
            error=true; 	
            texto=texto+"-Debe especificar la dirección de la empresa, en Datos del tutor industrial.\n";		
        }
        
        if (//El campo telefono
            d.tlf_tut_ind.value==""    ){
            error=true; 	
            texto=texto+"-Debe especificar el teléfono del tutor industrial.\n";		
        }
        if (//El campo email vacio
            d.email_tut_ind.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar el email del tutor industrial.\n";		
        }
       
        if (//El campo contacto recursos humanos
            d.tlf_rrhh.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar el contacto de recursos humanos.\n";		
        }
        
        if (//El campo descripcion empresa esta vacio	
            d.descripcion_ind.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar la descripción de la empresa.\n";		
        }

    }
    
         
    /******************* Verificacion de datos tutor academico *****************/
    
    if (d.tutor_usbid.value=="Otro"){
        if (datos_tutor_academico_vacios()){
            error=true; 	
            texto=texto+"-Debe completar Datos Tutor académico.\n";		
        }
        else{

            if( d.nombre_tut_usb.value==""){ 
                error=true; 	
                texto=texto+"-Debe especificar el Nombre del tutor acedémico.\n";
            }
            if( d.apellido_tut_usb.value==""){ 
                error=true; 	
                texto=texto+"-Debe especificar el Apellido del tutor acedémico.\n";
            }
            if( d.ced_aca.value==""){ 
                error=true; 	
                texto=texto+"-Debe especificar la cédula del tutor acedémico.\n";
            }
            if(d.dpto_tut_usb.value=="seleccione"){ 
                error=true; 	
                texto=texto+"-Debe especificar el departamento del tutor acedémico.\n";
            }	
            
            if( d.categoria.value=="seleccione"){ 
                error=true; 	
                texto=texto+"-Debe especificar la categoría del tutor acedémico.\n";
            }
            
            if( d.dedicacion.value=="seleccione"){ 
                error=true; 	
                texto=texto+"-Debe especificar la dedicación del tutor acedémico.\n";
            }
            
            if( d.tlf_tut_usb.value==""){ 
                error=true; 	
                texto=texto+"-Debe especificar el teléfono del tutor académico.\n";
            }

            if( d.email_tut_usb==""){ 
                error=true; 	
                texto=texto+"-Debe especificar el email del tutor acedémico.\n";
            }

        }
    }//fin de verificacion de los datos del tutor academico
         
    /******************* Verificacion de datos pasantia *****************/
		
    if (datos_pasantia_vacios() ){
        error=true; 	
        texto=texto+"-Debe completar Datos Pasantía.\n";		
    }
    else{
        if (//El campo titulo esta vacio	
            d.texto.value=="" ){
            error=true; 	
            texto=texto+"-Debe especificar el título de la pasantía.\n";		
        }
        if (//El campo area vacio	
            d.area.value==""    ){
            error=true; 	
            texto=texto+"-Debe especificar el área de la pasantía.\n";		
        }
        if  (//El campo resumen esta vacio	
            d.resumen.value==""  ){
            error=true; 	
            texto=texto+"-Debe especificar el resumen de la pasantía.\n";		
        }	
        if (//El campo objetivos esta vacio	
            d.objetivos.value==""   ){
            error=true; 	
            texto=texto+"-Debe especificar los objetivos de la pasantía.\n";		
        }
	
    }//fin de verificacion de  los campos del area Datos de Pasantía
         
    /******************* Validaciones formato *****************/
    
    // Validacion email tutor industrial
    if(!valEmail(d.email_tut_ind.value)&&d.email_tut_ind.value!=""){ 
        error=true; 	
        texto2=texto2+"-El email del tutor industrial debe ser válido. Ejemplo: correo@algo.com.\n";
    }
    
    // Validacion email tutor academico

    if(!valEmail2(d.email_tut_usb.value) && d.email_tut_usb.value!=""){ 
        error=true; 	
        texto2=texto2+"-El email del Tutor Académico tiene un error. El email debe corresponder con el usbid del Tutor Académico. Note que este no debe contener @, el sistema lo agrega por usted.\n";
    }
    
    //Validacion Telefono tutor industrial
    if(!valTelefono(d.tlf_tut_ind.value)&& d.tlf_tut_ind.value!=""){ 
        error=true; 	
        texto2=texto2+"-El número de teléfono del tutor industrial no debe contener espacios ni caracteres y debe contener al menos código de área. Ejemplo: 02121234567.\nPara números internacionales, especificar códigoPaís-códigoCiudad-teléfono. Ej.582121234567\n";
    }
    
    //Validacion Telefono RRHH
    if(!valTelefono(d.tlf_rrhh.value)&& d.tlf_rrhh.value!=""){ 
        error=true; 	
        texto2=texto2+"-El número de teléfono de Recursos Humanos no debe contener espacios ni caracteres y debe contener al menos código de área. Ejemplo: 02121234567.\nPara números internacionales, especificar códigoPaís-códigoCiudad-teléfono. Ej.582121234567\n";
    }
    
    //Validacion Telefono tutor academico
    if(!valTelefono(d.tlf_tut_usb.value)&& d.tlf_tut_usb.value!=""){ 
        error=true; 	
        texto2=texto2+"-El número de teléfono del tutor académico no debe contener espacios ni caracteres y debe contener código de área. Ejemplo: 02121234567.\n";
    }    
    

    // Verificacion del area Fases
    if(!fases_llenas()){ 
        error=true; 	
        texto=texto+"-Debe completar Datos Fases. \n";	
    } 

    // aviso con los errores
    if(!error){
        
        if (confirm("Al confirmar, solo esta registrando su plan de trabajo. Para enviarlo a la cctds o modificarlo, ver Opciones.")){

            d.submit();
        }
        
    }else{
        if(texto2!=""){
            aviso="\nSe detectaron los siguientes errores:\n"+texto2;	
        }
        if(texto!=""){
            aviso=aviso+"\nDebe completar los siguientes campos:\n"+texto;
        }
        alert(aviso);			
    }
}
